<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Django Deprecation Timeline &mdash; Django 1.7.8.dev20150401230226 documentation</title>
    
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.7.8.dev20150401230226',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="top" title="Django 1.7.8.dev20150401230226 documentation" href="../index.html" />
    <link rel="up" title="Django internals" href="index.html" />
    <link rel="next" title="The Django source code repository" href="git.html" />
    <link rel="prev" title="Django’s release process" href="release-process.html" />



 
<script type="text/javascript" src="../templatebuiltins.js"></script>
<script type="text/javascript">
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../ref/templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);
</script>


  </head>
  <body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Django 1.7.8.dev20150401230226 documentation</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Module index" href="../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="release-process.html" title="Django&amp;#8217;s release process">previous</a>
     |
    <a href="index.html" title="Django internals" accesskey="U">up</a>
   |
    <a href="git.html" title="The Django source code repository">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="internals-deprecation">
            
  <div class="section" id="s-django-deprecation-timeline">
<span id="django-deprecation-timeline"></span><h1>Django Deprecation Timeline<a class="headerlink" href="#django-deprecation-timeline" title="Permalink to this headline">¶</a></h1>
<p>This document outlines when various pieces of Django will be removed or altered
in a backward incompatible way, following their deprecation, as per the
<a class="reference internal" href="release-process.html#internal-release-deprecation-policy"><em>deprecation policy</em></a>. More details
about each item can often be found in the release notes of two versions prior.</p>
<div class="section" id="s-deprecation-removed-in-1-9">
<span id="s-id1"></span><span id="deprecation-removed-in-1-9"></span><span id="id1"></span><h2>1.9<a class="headerlink" href="#deprecation-removed-in-1-9" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.7.html#deprecated-features-1-7"><em>Django 1.7 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">django.utils.dictconfig</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.importlib</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.tzinfo</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.unittest</span></tt> will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">syncdb</span></tt> command will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.db.models.signals.pre_syncdb</span></tt> and
<tt class="docutils literal"><span class="pre">django.db.models.signals.post_syncdb</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">allow_syncdb</span></tt> on database routers will no longer automatically become
<tt class="docutils literal"><span class="pre">allow_migrate</span></tt>.</li>
<li>The legacy method of syncing apps without migrations will be removed,
and migrations will become compulsory for all apps. This includes automatic
loading of <tt class="docutils literal"><span class="pre">initial_data</span></tt> fixtures and support for initial SQL data.</li>
<li>All models will need to be defined inside an installed application or
declare an explicit <a class="reference internal" href="../ref/models/options.html#django.db.models.Options.app_label" title="django.db.models.Options.app_label"><tt class="xref py py-attr docutils literal"><span class="pre">app_label</span></tt></a>.
Furthermore, it won&#8217;t be possible to import them before their application
is loaded. In particular, it won&#8217;t be possible to import models inside
the root package of their application.</li>
<li>The model and form <tt class="docutils literal"><span class="pre">IPAddressField</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">AppCommand.handle_app()</span></tt> will no longer be supported.</li>
<li><tt class="docutils literal"><span class="pre">RequestSite</span></tt> and <tt class="docutils literal"><span class="pre">get_current_site()</span></tt> will no longer be importable from
<tt class="docutils literal"><span class="pre">django.contrib.sites.models</span></tt>.</li>
<li>FastCGI support via the <tt class="docutils literal"><span class="pre">runfcgi</span></tt> management command will be
removed. Please deploy your project using WSGI.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.datastructures.SortedDict</span></tt> will be removed. Use
<a class="reference external" href="http://docs.python.org/3/library/collections.html#collections.OrderedDict" title="(in Python v3.4)"><tt class="xref py py-class docutils literal"><span class="pre">collections.OrderedDict</span></tt></a> from the Python standard library instead.</li>
<li><tt class="docutils literal"><span class="pre">ModelAdmin.declared_fieldsets</span></tt> will be removed.</li>
<li>Instances of <tt class="docutils literal"><span class="pre">util.py</span></tt> in the Django codebase have been renamed to
<tt class="docutils literal"><span class="pre">utils.py</span></tt> in an effort to unify all util and utils references.
The modules that provided backwards compatibility will be removed:<ul>
<li><tt class="docutils literal"><span class="pre">django.contrib.admin.util</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.contrib.gis.db.backends.util</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.db.backends.util</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.forms.util</span></tt></li>
</ul>
</li>
<li><tt class="docutils literal"><span class="pre">ModelAdmin.get_formsets</span></tt> will be removed.</li>
<li>The backward compatibility shim introduced to rename the
<tt class="docutils literal"><span class="pre">BaseMemcachedCache._get_memcache_timeout()</span></tt> method to
<tt class="docutils literal"><span class="pre">get_backend_timeout()</span></tt> will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">--natural</span></tt> and <tt class="docutils literal"><span class="pre">-n</span></tt> options for <a class="reference internal" href="../ref/django-admin.html#django-admin-dumpdata"><tt class="xref std std-djadmin docutils literal"><span class="pre">dumpdata</span></tt></a> will be removed.
Use <a class="reference internal" href="../ref/django-admin.html#django-admin-option---natural-foreign"><tt class="xref std std-djadminopt docutils literal"><span class="pre">--natural-foreign</span></tt></a> instead.</li>
<li>The <tt class="docutils literal"><span class="pre">use_natural_keys</span></tt> argument for <tt class="docutils literal"><span class="pre">serializers.serialize()</span></tt> will be
removed. Use <tt class="docutils literal"><span class="pre">use_natural_foreign_keys</span></tt> instead.</li>
<li>Private API <tt class="docutils literal"><span class="pre">django.forms.forms.get_declared_fields()</span></tt> will be removed.</li>
<li>The ability to use a <tt class="docutils literal"><span class="pre">SplitDateTimeWidget</span></tt> with <tt class="docutils literal"><span class="pre">DateTimeField</span></tt> will be
removed.</li>
<li>The <tt class="docutils literal"><span class="pre">WSGIRequest.REQUEST</span></tt> property will be removed.</li>
<li>The class <tt class="docutils literal"><span class="pre">django.utils.datastructures.MergeDict</span></tt> will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">zh-cn</span></tt> and <tt class="docutils literal"><span class="pre">zh-tw</span></tt> language codes will be removed and have been
replaced by the <tt class="docutils literal"><span class="pre">zh-hans</span></tt> and <tt class="docutils literal"><span class="pre">zh-hant</span></tt> language code respectively.</li>
<li>The internal <tt class="docutils literal"><span class="pre">django.utils.functional.memoize</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.core.cache.get_cache</span></tt> will be removed. Add suitable entries
to <a class="reference internal" href="../ref/settings.html#std:setting-CACHES"><tt class="xref std std-setting docutils literal"><span class="pre">CACHES</span></tt></a> and use <a class="reference internal" href="../topics/cache.html#django.core.cache.caches" title="django.core.cache.caches"><tt class="xref py py-data docutils literal"><span class="pre">django.core.cache.caches</span></tt></a> instead.</li>
<li><tt class="docutils literal"><span class="pre">django.db.models.loading</span></tt> will be removed.</li>
<li>Passing callable arguments to querysets will no longer be possible.</li>
<li><tt class="docutils literal"><span class="pre">BaseCommand.requires_model_validation</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">requires_system_checks</span></tt>. Admin validators will be replaced by admin
checks.</li>
<li>The <tt class="docutils literal"><span class="pre">ModelAdmin.validator_class</span></tt> and <tt class="docutils literal"><span class="pre">default_validator_class</span></tt> attributes
will be removed.</li>
<li><tt class="docutils literal"><span class="pre">ModelAdmin.validate()</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.db.backends.DatabaseValidation.validate_field</span></tt> will be removed in
favor of the <tt class="docutils literal"><span class="pre">check_field</span></tt> method.</li>
<li>The <tt class="docutils literal"><span class="pre">validate</span></tt> management command will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.module_loading.import_by_path</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">django.utils.module_loading.import_string</span></tt>.</li>
<li><tt class="docutils literal"><span class="pre">ssi</span></tt> and <tt class="docutils literal"><span class="pre">url</span></tt> template tags will be removed from the <tt class="docutils literal"><span class="pre">future</span></tt> template
tag library (used during the 1.3/1.4 deprecation period).</li>
<li><tt class="docutils literal"><span class="pre">django.utils.text.javascript_quote</span></tt> will be removed.</li>
<li>Database test settings as independent entries in the database settings,
prefixed by <tt class="docutils literal"><span class="pre">TEST_</span></tt>, will no longer be supported.</li>
<li>The <cite>cache_choices</cite> option to <a class="reference internal" href="../ref/forms/fields.html#django.forms.ModelChoiceField" title="django.forms.ModelChoiceField"><tt class="xref py py-class docutils literal"><span class="pre">ModelChoiceField</span></tt></a> and
<a class="reference internal" href="../ref/forms/fields.html#django.forms.ModelMultipleChoiceField" title="django.forms.ModelMultipleChoiceField"><tt class="xref py py-class docutils literal"><span class="pre">ModelMultipleChoiceField</span></tt></a> will be removed.</li>
<li>The default value of the
<a class="reference internal" href="../ref/class-based-views/base.html#django.views.generic.base.RedirectView.permanent" title="django.views.generic.base.RedirectView.permanent"><tt class="xref py py-attr docutils literal"><span class="pre">RedirectView.permanent</span></tt></a>
attribute will change from <tt class="docutils literal"><span class="pre">True</span></tt> to <tt class="docutils literal"><span class="pre">False</span></tt>.</li>
<li><tt class="docutils literal"><span class="pre">django.contrib.sitemaps.FlatPageSitemap</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">django.contrib.flatpages.sitemaps.FlatPageSitemap</span></tt>.</li>
<li>Private API <tt class="docutils literal"><span class="pre">django.test.utils.TestTemplateLoader</span></tt> will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">django.contrib.contenttypes.generic</span></tt> module will be removed.</li>
<li>Private APIs <tt class="docutils literal"><span class="pre">django.db.models.sql.where.WhereNode.make_atom()</span></tt> and
<tt class="docutils literal"><span class="pre">django.db.models.sql.where.Constraint</span></tt> will be removed.</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-8">
<span id="s-id2"></span><span id="deprecation-removed-in-1-8"></span><span id="id2"></span><h2>1.8<a class="headerlink" href="#deprecation-removed-in-1-8" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.6.html#deprecated-features-1-6"><em>Django 1.6 release notes</em></a> for more
details on these changes.</p>
<ul>
<li><p class="first"><tt class="docutils literal"><span class="pre">django.contrib.comments</span></tt> will be removed.</p>
</li>
<li><p class="first">The following transaction management APIs will be removed:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">TransactionMiddleware</span></tt>,</li>
<li>the decorators and context managers <tt class="docutils literal"><span class="pre">autocommit</span></tt>, <tt class="docutils literal"><span class="pre">commit_on_success</span></tt>,
and <tt class="docutils literal"><span class="pre">commit_manually</span></tt>, defined in <tt class="docutils literal"><span class="pre">django.db.transaction</span></tt>,</li>
<li>the functions <tt class="docutils literal"><span class="pre">commit_unless_managed</span></tt> and <tt class="docutils literal"><span class="pre">rollback_unless_managed</span></tt>,
also defined in <tt class="docutils literal"><span class="pre">django.db.transaction</span></tt>,</li>
<li>the <tt class="docutils literal"><span class="pre">TRANSACTIONS_MANAGED</span></tt> setting.</li>
</ul>
<p>Upgrade paths are described in the <a class="reference internal" href="../topics/db/transactions.html#transactions-upgrading-from-1-5"><em>transaction management docs</em></a>.</p>
</li>
<li><p class="first">The <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-cycle"><tt class="xref std std-ttag docutils literal"><span class="pre">cycle</span></tt></a> and <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-firstof"><tt class="xref std std-ttag docutils literal"><span class="pre">firstof</span></tt></a> template tags will auto-escape their
arguments. In 1.6 and 1.7, this behavior is provided by the version of these
tags in the <tt class="docutils literal"><span class="pre">future</span></tt> template tag library.</p>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">SEND_BROKEN_LINK_EMAILS</span></tt> setting will be removed. Add the
<a class="reference internal" href="../ref/middleware.html#django.middleware.common.BrokenLinkEmailsMiddleware" title="django.middleware.common.BrokenLinkEmailsMiddleware"><tt class="xref py py-class docutils literal"><span class="pre">django.middleware.common.BrokenLinkEmailsMiddleware</span></tt></a> middleware to
your <a class="reference internal" href="../ref/settings.html#std:setting-MIDDLEWARE_CLASSES"><tt class="xref std std-setting docutils literal"><span class="pre">MIDDLEWARE_CLASSES</span></tt></a> setting instead.</p>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">django.middleware.doc.XViewMiddleware</span></tt> will be removed. Use
<tt class="docutils literal"><span class="pre">django.contrib.admindocs.middleware.XViewMiddleware</span></tt> instead.</p>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">Model._meta.module_name</span></tt> was renamed to <tt class="docutils literal"><span class="pre">model_name</span></tt>.</p>
</li>
<li><p class="first">Remove the backward compatible shims introduced to rename <tt class="docutils literal"><span class="pre">get_query_set</span></tt>
and similar queryset methods. This affects the following classes:
<tt class="docutils literal"><span class="pre">BaseModelAdmin</span></tt>, <tt class="docutils literal"><span class="pre">ChangeList</span></tt>, <tt class="docutils literal"><span class="pre">BaseCommentNode</span></tt>,
<tt class="docutils literal"><span class="pre">GenericForeignKey</span></tt>, <tt class="docutils literal"><span class="pre">Manager</span></tt>, <tt class="docutils literal"><span class="pre">SingleRelatedObjectDescriptor</span></tt> and
<tt class="docutils literal"><span class="pre">ReverseSingleRelatedObjectDescriptor</span></tt>.</p>
</li>
<li><p class="first">Remove the backward compatible shims introduced to rename the attributes
<tt class="docutils literal"><span class="pre">ChangeList.root_query_set</span></tt> and <tt class="docutils literal"><span class="pre">ChangeList.query_set</span></tt>.</p>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">django.views.defaults.shortcut</span></tt> will be removed, as part of the
goal of removing all <tt class="docutils literal"><span class="pre">django.contrib</span></tt> references from the core
Django codebase. Instead use
<tt class="docutils literal"><span class="pre">django.contrib.contenttypes.views.shortcut</span></tt>. <tt class="docutils literal"><span class="pre">django.conf.urls.shortcut</span></tt>
will also be removed.</p>
</li>
<li><p class="first">Support for the Python Imaging Library (PIL) module will be removed, as it
no longer appears to be actively maintained &amp; does not work on Python 3.
You are advised to install <a class="reference external" href="https://pypi.python.org/pypi/Pillow">Pillow</a>, which should be used instead.</p>
</li>
<li><p class="first">The following private APIs will be removed:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">django.db.backend</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.db.close_connection()</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.db.backends.creation.BaseDatabaseCreation.set_autocommit()</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.db.transaction.is_managed()</span></tt></li>
<li><tt class="docutils literal"><span class="pre">django.db.transaction.managed()</span></tt></li>
</ul>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">django.forms.widgets.RadioInput</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">django.forms.widgets.RadioChoiceInput</span></tt>.</p>
</li>
<li><p class="first">The module <tt class="docutils literal"><span class="pre">django.test.simple</span></tt> and the class
<tt class="docutils literal"><span class="pre">django.test.simple.DjangoTestSuiteRunner</span></tt> will be removed. Instead use
<tt class="docutils literal"><span class="pre">django.test.runner.DiscoverRunner</span></tt>.</p>
</li>
<li><p class="first">The module <tt class="docutils literal"><span class="pre">django.test._doctest</span></tt> will be removed. Instead use the doctest
module from the Python standard library.</p>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">CACHE_MIDDLEWARE_ANONYMOUS_ONLY</span></tt> setting will be removed.</p>
</li>
<li><p class="first">Usage of the hard-coded <em>Hold down &#8220;Control&#8221;, or &#8220;Command&#8221; on a Mac, to select
more than one.</em> string to override or append to user-provided <tt class="docutils literal"><span class="pre">help_text</span></tt> in
forms for ManyToMany model fields will not be performed by Django anymore
either at the model or forms layer.</p>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">Model._meta.get_(add|change|delete)_permission</span></tt> methods will
be removed.</p>
</li>
<li><p class="first">The session key <tt class="docutils literal"><span class="pre">django_language</span></tt> will no longer be read for backwards
compatibility.</p>
</li>
<li><p class="first">Geographic Sitemaps will be removed
(<tt class="docutils literal"><span class="pre">django.contrib.gis.sitemaps.views.index</span></tt> and
<tt class="docutils literal"><span class="pre">django.contrib.gis.sitemaps.views.sitemap</span></tt>).</p>
</li>
<li><p class="first"><tt class="docutils literal"><span class="pre">django.utils.html.fix_ampersands</span></tt>, the <tt class="docutils literal"><span class="pre">fix_ampersands</span></tt> template filter and
<tt class="docutils literal"><span class="pre">django.utils.html.clean_html</span></tt> will be removed following an accelerated deprecation.</p>
</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-7">
<span id="s-id3"></span><span id="deprecation-removed-in-1-7"></span><span id="id3"></span><h2>1.7<a class="headerlink" href="#deprecation-removed-in-1-7" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.5.html#deprecated-features-1-5"><em>Django 1.5 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li>The module <tt class="docutils literal"><span class="pre">django.utils.simplejson</span></tt> will be removed. The standard library
provides <a class="reference external" href="http://docs.python.org/3/library/json.html#module-json" title="(in Python v3.4)"><tt class="xref py py-mod docutils literal"><span class="pre">json</span></tt></a> which should be used instead.</li>
<li>The function <tt class="docutils literal"><span class="pre">django.utils.itercompat.product</span></tt> will be removed. The Python
builtin version should be used instead.</li>
<li>Auto-correction of INSTALLED_APPS and TEMPLATE_DIRS settings when they are
specified as a plain string instead of a tuple will be removed and raise an
exception.</li>
<li>The <tt class="docutils literal"><span class="pre">mimetype</span></tt> argument to the <tt class="docutils literal"><span class="pre">__init__</span></tt> methods of
<a class="reference internal" href="../ref/request-response.html#django.http.HttpResponse" title="django.http.HttpResponse"><tt class="xref py py-class docutils literal"><span class="pre">HttpResponse</span></tt></a>,
<a class="reference internal" href="../ref/template-response.html#django.template.response.SimpleTemplateResponse" title="django.template.response.SimpleTemplateResponse"><tt class="xref py py-class docutils literal"><span class="pre">SimpleTemplateResponse</span></tt></a>, and
<a class="reference internal" href="../ref/template-response.html#django.template.response.TemplateResponse" title="django.template.response.TemplateResponse"><tt class="xref py py-class docutils literal"><span class="pre">TemplateResponse</span></tt></a>, will be removed.
<tt class="docutils literal"><span class="pre">content_type</span></tt> should be used instead. This also applies to the
<a class="reference internal" href="../topics/http/shortcuts.html#django.shortcuts.render_to_response" title="django.shortcuts.render_to_response"><tt class="xref py py-func docutils literal"><span class="pre">render_to_response()</span></tt></a> shortcut and
the sitemap views, <a class="reference internal" href="../ref/contrib/sitemaps.html#django.contrib.sitemaps.views.index" title="django.contrib.sitemaps.views.index"><tt class="xref py py-func docutils literal"><span class="pre">index()</span></tt></a> and
<a class="reference internal" href="../ref/contrib/sitemaps.html#django.contrib.sitemaps.views.sitemap" title="django.contrib.sitemaps.views.sitemap"><tt class="xref py py-func docutils literal"><span class="pre">sitemap()</span></tt></a>.</li>
<li>When <a class="reference internal" href="../ref/request-response.html#django.http.HttpResponse" title="django.http.HttpResponse"><tt class="xref py py-class docutils literal"><span class="pre">HttpResponse</span></tt></a> is instantiated with an iterator,
or when <a class="reference internal" href="../ref/request-response.html#django.http.HttpResponse.content" title="django.http.HttpResponse.content"><tt class="xref py py-attr docutils literal"><span class="pre">content</span></tt></a> is set to an iterator,
that iterator will be immediately consumed.</li>
<li>The <tt class="docutils literal"><span class="pre">AUTH_PROFILE_MODULE</span></tt> setting, and the <tt class="docutils literal"><span class="pre">get_profile()</span></tt> method on
the User model, will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">cleanup</span></tt> management command will be removed. It&#8217;s replaced by
<tt class="docutils literal"><span class="pre">clearsessions</span></tt>.</li>
<li>The <tt class="docutils literal"><span class="pre">daily_cleanup.py</span></tt> script will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">depth</span></tt> keyword argument will be removed from
<a class="reference internal" href="../ref/models/querysets.html#django.db.models.query.QuerySet.select_related" title="django.db.models.query.QuerySet.select_related"><tt class="xref py py-meth docutils literal"><span class="pre">select_related()</span></tt></a>.</li>
<li>The undocumented <tt class="docutils literal"><span class="pre">get_warnings_state()</span></tt>/<tt class="docutils literal"><span class="pre">restore_warnings_state()</span></tt>
functions from <a class="reference internal" href="../topics/testing/advanced.html#module-django.test.utils" title="django.test.utils: Helpers to write custom test runners."><tt class="xref py py-mod docutils literal"><span class="pre">django.test.utils</span></tt></a> and the <tt class="docutils literal"><span class="pre">save_warnings_state()</span></tt>/
<tt class="docutils literal"><span class="pre">restore_warnings_state()</span></tt>
<a class="reference internal" href="../topics/testing/tools.html#django-testcase-subclasses"><em>django.test.*TestCase</em></a> methods are
deprecated. Use the <a class="reference external" href="http://docs.python.org/3/library/warnings.html#warnings.catch_warnings" title="(in Python v3.4)"><tt class="xref py py-class docutils literal"><span class="pre">warnings.catch_warnings</span></tt></a> context manager
available starting with Python 2.6 instead.</li>
<li>The undocumented <tt class="docutils literal"><span class="pre">check_for_test_cookie</span></tt> method in
<a class="reference internal" href="../topics/auth/default.html#django.contrib.auth.forms.AuthenticationForm" title="django.contrib.auth.forms.AuthenticationForm"><tt class="xref py py-class docutils literal"><span class="pre">AuthenticationForm</span></tt></a> will be removed
following an accelerated deprecation. Users subclassing this form should
remove calls to this method, and instead ensure that their auth related views
are CSRF protected, which ensures that cookies are enabled.</li>
<li>The version of <a class="reference internal" href="../topics/auth/default.html#django.contrib.auth.views.password_reset_confirm" title="django.contrib.auth.views.password_reset_confirm"><tt class="xref py py-func docutils literal"><span class="pre">django.contrib.auth.views.password_reset_confirm()</span></tt></a> that
supports base36 encoded user IDs
(<tt class="docutils literal"><span class="pre">django.contrib.auth.views.password_reset_confirm_uidb36</span></tt>) will be
removed. If your site has been running Django 1.6 for more than
<a class="reference internal" href="../ref/settings.html#std:setting-PASSWORD_RESET_TIMEOUT_DAYS"><tt class="xref std std-setting docutils literal"><span class="pre">PASSWORD_RESET_TIMEOUT_DAYS</span></tt></a>, this change will have no effect. If
not, then any password reset links generated before you upgrade to Django 1.7
won&#8217;t work after the upgrade.</li>
<li>The <tt class="docutils literal"><span class="pre">django.utils.encoding.StrAndUnicode</span></tt> mix-in will be removed.
Define a <tt class="docutils literal"><span class="pre">__str__</span></tt> method and apply the
<a class="reference internal" href="../ref/utils.html#django.utils.encoding.python_2_unicode_compatible" title="django.utils.encoding.python_2_unicode_compatible"><tt class="xref py py-func docutils literal"><span class="pre">python_2_unicode_compatible()</span></tt></a> decorator instead.</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-6">
<span id="s-id4"></span><span id="deprecation-removed-in-1-6"></span><span id="id4"></span><h2>1.6<a class="headerlink" href="#deprecation-removed-in-1-6" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.4.html#deprecated-features-1-4"><em>Django 1.4 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">django.contrib.databrowse</span></tt> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.contrib.localflavor</span></tt> will be removed following an accelerated
deprecation.</li>
<li><tt class="docutils literal"><span class="pre">django.contrib.markup</span></tt> will be removed following an accelerated
deprecation.</li>
<li>The compatibility modules <tt class="docutils literal"><span class="pre">django.utils.copycompat</span></tt> and
<tt class="docutils literal"><span class="pre">django.utils.hashcompat</span></tt> as well as the functions
<tt class="docutils literal"><span class="pre">django.utils.itercompat.all</span></tt> and <tt class="docutils literal"><span class="pre">django.utils.itercompat.any</span></tt> will
be removed. The Python builtin versions should be used instead.</li>
<li>The <tt class="docutils literal"><span class="pre">csrf_response_exempt</span></tt> and <tt class="docutils literal"><span class="pre">csrf_view_exempt</span></tt> decorators will
be removed. Since 1.4 <tt class="docutils literal"><span class="pre">csrf_response_exempt</span></tt> has been a no-op (it
returns the same function), and <tt class="docutils literal"><span class="pre">csrf_view_exempt</span></tt> has been a
synonym for <tt class="docutils literal"><span class="pre">django.views.decorators.csrf.csrf_exempt</span></tt>, which should
be used to replace it.</li>
<li>The <tt class="docutils literal"><span class="pre">django.core.cache.backends.memcached.CacheClass</span></tt> backend
was split into two in Django 1.3 in order to introduce support for
PyLibMC. The historical <tt class="docutils literal"><span class="pre">CacheClass</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">django.core.cache.backends.memcached.MemcachedCache</span></tt>.</li>
<li>The UK-prefixed objects of <tt class="docutils literal"><span class="pre">django.contrib.localflavor.uk</span></tt> will only
be accessible through their GB-prefixed names (GB is the correct
ISO 3166 code for United Kingdom).</li>
<li>The <tt class="docutils literal"><span class="pre">IGNORABLE_404_STARTS</span></tt> and <tt class="docutils literal"><span class="pre">IGNORABLE_404_ENDS</span></tt> settings have been
superseded by <a class="reference internal" href="../ref/settings.html#std:setting-IGNORABLE_404_URLS"><tt class="xref std std-setting docutils literal"><span class="pre">IGNORABLE_404_URLS</span></tt></a> in the 1.4 release. They will be
removed.</li>
<li>The <a class="reference internal" href="../ref/contrib/formtools/form-wizard.html"><em>form wizard</em></a> has been
refactored to use class-based views with pluggable backends in 1.4.
The previous implementation will be removed.</li>
<li>Legacy ways of calling
<a class="reference internal" href="../topics/cache.html#django.views.decorators.cache.cache_page" title="django.views.decorators.cache.cache_page"><tt class="xref py py-func docutils literal"><span class="pre">cache_page()</span></tt></a> will be removed.</li>
<li>The backward-compatibility shim to automatically add a debug-false
filter to the <tt class="docutils literal"><span class="pre">'mail_admins'</span></tt> logging handler will be removed. The
<a class="reference internal" href="../ref/settings.html#std:setting-LOGGING"><tt class="xref std std-setting docutils literal"><span class="pre">LOGGING</span></tt></a> setting should include this filter explicitly if
it is desired.</li>
<li>The builtin truncation functions <tt class="docutils literal"><span class="pre">django.utils.text.truncate_words()</span></tt>
and <tt class="docutils literal"><span class="pre">django.utils.text.truncate_html_words()</span></tt> will be removed in
favor of the <tt class="docutils literal"><span class="pre">django.utils.text.Truncator</span></tt> class.</li>
<li>The <a class="reference internal" href="../ref/contrib/gis/geoip.html#django.contrib.gis.geoip.GeoIP" title="django.contrib.gis.geoip.GeoIP"><tt class="xref py py-class docutils literal"><span class="pre">GeoIP</span></tt></a> class was moved to
<a class="reference internal" href="../ref/contrib/gis/geoip.html#module-django.contrib.gis.geoip" title="django.contrib.gis.geoip: High-level Python interface for MaxMind's GeoIP C library."><tt class="xref py py-mod docutils literal"><span class="pre">django.contrib.gis.geoip</span></tt></a> in 1.4 &#8211; the shortcut in
<a class="reference internal" href="../ref/contrib/gis/utils.html#module-django.contrib.gis.utils" title="django.contrib.gis.utils: GeoDjango's collection of utilities."><tt class="xref py py-mod docutils literal"><span class="pre">django.contrib.gis.utils</span></tt></a> will be removed.</li>
<li><tt class="docutils literal"><span class="pre">django.conf.urls.defaults</span></tt> will be removed. The functions
<a class="reference internal" href="../ref/urls.html#django.conf.urls.include" title="django.conf.urls.include"><tt class="xref py py-func docutils literal"><span class="pre">include()</span></tt></a>, <a class="reference internal" href="../ref/urls.html#django.conf.urls.patterns" title="django.conf.urls.patterns"><tt class="xref py py-func docutils literal"><span class="pre">patterns()</span></tt></a> and
<a class="reference internal" href="../ref/urls.html#django.conf.urls.url" title="django.conf.urls.url"><tt class="xref py py-func docutils literal"><span class="pre">url()</span></tt></a> plus <a class="reference internal" href="../ref/urls.html#django.conf.urls.handler404" title="django.conf.urls.handler404"><tt class="xref py py-data docutils literal"><span class="pre">handler404</span></tt></a>,
<a class="reference internal" href="../ref/urls.html#django.conf.urls.handler500" title="django.conf.urls.handler500"><tt class="xref py py-data docutils literal"><span class="pre">handler500</span></tt></a>, are now available through
<a class="reference internal" href="../ref/urls.html#module-django.conf.urls" title="django.conf.urls"><tt class="xref py py-mod docutils literal"><span class="pre">django.conf.urls</span></tt></a> .</li>
<li>The functions <tt class="docutils literal"><span class="pre">setup_environ()</span></tt> and <tt class="docutils literal"><span class="pre">execute_manager()</span></tt> will be removed
from <a class="reference internal" href="../howto/custom-management-commands.html#module-django.core.management" title="django.core.management"><tt class="xref py py-mod docutils literal"><span class="pre">django.core.management</span></tt></a>. This also means that the old (pre-1.4)
style of <tt class="file docutils literal"><span class="pre">manage.py</span></tt> file will no longer work.</li>
<li>Setting the <tt class="docutils literal"><span class="pre">is_safe</span></tt> and <tt class="docutils literal"><span class="pre">needs_autoescape</span></tt> flags as attributes of
template filter functions will no longer be supported.</li>
<li>The attribute <tt class="docutils literal"><span class="pre">HttpRequest.raw_post_data</span></tt> was renamed to <tt class="docutils literal"><span class="pre">HttpRequest.body</span></tt>
in 1.4. The backward compatibility will be removed &#8211;
<tt class="docutils literal"><span class="pre">HttpRequest.raw_post_data</span></tt> will no longer work.</li>
<li>The value for the <tt class="docutils literal"><span class="pre">post_url_continue</span></tt> parameter in
<tt class="docutils literal"><span class="pre">ModelAdmin.response_add()</span></tt> will have to be either <tt class="docutils literal"><span class="pre">None</span></tt> (to redirect
to the newly created object&#8217;s edit page) or a pre-formatted url. String
formats, such as the previous default <tt class="docutils literal"><span class="pre">'../%s/'</span></tt>, will not be accepted any
more.</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-5">
<span id="s-id5"></span><span id="deprecation-removed-in-1-5"></span><span id="id5"></span><h2>1.5<a class="headerlink" href="#deprecation-removed-in-1-5" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.3.html#deprecated-features-1-3"><em>Django 1.3 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li>Starting Django without a <a class="reference internal" href="../ref/settings.html#std:setting-SECRET_KEY"><tt class="xref std std-setting docutils literal"><span class="pre">SECRET_KEY</span></tt></a> will result in an exception
rather than a <tt class="docutils literal"><span class="pre">DeprecationWarning</span></tt>. (This is accelerated from the usual
deprecation path; see the <a class="reference internal" href="../releases/1.4.html"><em>Django 1.4 release notes</em></a>.)</li>
<li>The <tt class="docutils literal"><span class="pre">mod_python</span></tt> request handler will be removed. The <tt class="docutils literal"><span class="pre">mod_wsgi</span></tt>
handler should be used instead.</li>
<li>The <tt class="docutils literal"><span class="pre">template</span></tt> attribute on <tt class="docutils literal"><span class="pre">django.test.client.Response</span></tt>
objects returned by the <a class="reference internal" href="../topics/testing/tools.html#test-client"><em>test client</em></a> will be removed.
The <a class="reference internal" href="../topics/testing/tools.html#django.test.Response.templates" title="django.test.Response.templates"><tt class="xref py py-attr docutils literal"><span class="pre">templates</span></tt></a> attribute should be
used instead.</li>
<li>The <tt class="docutils literal"><span class="pre">django.test.simple.DjangoTestRunner</span></tt> will be removed.
Instead use a unittest-native class.  The features of the
<tt class="docutils literal"><span class="pre">django.test.simple.DjangoTestRunner</span></tt> (including fail-fast and
Ctrl-C test termination) can currently be provided by the unittest-native
<a class="reference external" href="http://docs.python.org/3/library/unittest.html#unittest.TextTestRunner" title="(in Python v3.4)"><tt class="xref py py-class docutils literal"><span class="pre">TextTestRunner</span></tt></a>.</li>
<li>The undocumented function
<tt class="docutils literal"><span class="pre">django.contrib.formtools.utils.security_hash</span></tt> will be removed,
instead use <tt class="docutils literal"><span class="pre">django.contrib.formtools.utils.form_hmac</span></tt></li>
<li>The function-based generic view modules will be removed in favor of their
class-based equivalents, outlined <a class="reference internal" href="../topics/class-based-views/index.html"><em>here</em></a>.</li>
<li>The <tt class="docutils literal"><span class="pre">django.core.servers.basehttp.AdminMediaHandler</span></tt> will be
removed.  In its place use
<tt class="docutils literal"><span class="pre">django.contrib.staticfiles.handlers.StaticFilesHandler</span></tt>.</li>
<li>The template tags library <tt class="docutils literal"><span class="pre">adminmedia</span></tt> and the template tag <tt class="docutils literal"><span class="pre">{%</span>
<span class="pre">admin_media_prefix</span> <span class="pre">%}</span></tt> will be removed in favor of the generic static files
handling. (This is faster than the usual deprecation path; see the
<a class="reference internal" href="../releases/1.4.html"><em>Django 1.4 release notes</em></a>.)</li>
<li>The <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-url"><tt class="xref std std-ttag docutils literal"><span class="pre">url</span></tt></a> and <a class="reference internal" href="../ref/templates/builtins.html#std:templatetag-ssi"><tt class="xref std std-ttag docutils literal"><span class="pre">ssi</span></tt></a> template tags will be
modified so that the first argument to each tag is a template variable, not
an implied string. In 1.4, this behavior is provided by a version of the tag
in the <tt class="docutils literal"><span class="pre">future</span></tt> template tag library.</li>
<li>The <tt class="docutils literal"><span class="pre">reset</span></tt> and <tt class="docutils literal"><span class="pre">sqlreset</span></tt> management commands will be removed.</li>
<li>Authentication backends will need to support an inactive user
being passed to all methods dealing with permissions.
The <tt class="docutils literal"><span class="pre">supports_inactive_user</span></tt> attribute will no longer be checked
and can be removed from custom backends.</li>
<li><a class="reference internal" href="../ref/contrib/gis/geos.html#django.contrib.gis.geos.GEOSGeometry.transform" title="django.contrib.gis.geos.GEOSGeometry.transform"><tt class="xref py py-meth docutils literal"><span class="pre">transform()</span></tt></a> will raise
a <a class="reference internal" href="../ref/contrib/gis/geos.html#django.contrib.gis.geos.GEOSException" title="django.contrib.gis.geos.GEOSException"><tt class="xref py py-class docutils literal"><span class="pre">GEOSException</span></tt></a> when called
on a geometry with no SRID value.</li>
<li><tt class="docutils literal"><span class="pre">django.http.CompatCookie</span></tt> will be removed in favor of
<tt class="docutils literal"><span class="pre">django.http.SimpleCookie</span></tt>.</li>
<li><tt class="docutils literal"><span class="pre">django.core.context_processors.PermWrapper</span></tt> and
<tt class="docutils literal"><span class="pre">django.core.context_processors.PermLookupDict</span></tt> will be removed in
favor of the corresponding
<tt class="docutils literal"><span class="pre">django.contrib.auth.context_processors.PermWrapper</span></tt> and
<tt class="docutils literal"><span class="pre">django.contrib.auth.context_processors.PermLookupDict</span></tt>, respectively.</li>
<li>The <a class="reference internal" href="../ref/settings.html#std:setting-MEDIA_URL"><tt class="xref std std-setting docutils literal"><span class="pre">MEDIA_URL</span></tt></a> or <a class="reference internal" href="../ref/settings.html#std:setting-STATIC_URL"><tt class="xref std std-setting docutils literal"><span class="pre">STATIC_URL</span></tt></a> settings will be
required to end with a trailing slash to ensure there is a consistent
way to combine paths in templates.</li>
<li><tt class="docutils literal"><span class="pre">django.db.models.fields.URLField.verify_exists</span></tt> will be removed. The
feature was deprecated in 1.3.1 due to intractable security and
performance issues and will follow a slightly accelerated deprecation
timeframe.</li>
<li>Translations located under the so-called <em>project path</em> will be ignored during
the translation building process performed at runtime. The
<a class="reference internal" href="../ref/settings.html#std:setting-LOCALE_PATHS"><tt class="xref std std-setting docutils literal"><span class="pre">LOCALE_PATHS</span></tt></a> setting can be used for the same task by including the
filesystem path to a <tt class="docutils literal"><span class="pre">locale</span></tt> directory containing non-app-specific
translations in its value.</li>
<li>The Markup contrib app will no longer support versions of Python-Markdown
library earlier than 2.1. An accelerated timeline was used as this was
a security related deprecation.</li>
<li>The <tt class="docutils literal"><span class="pre">CACHE_BACKEND</span></tt> setting will be removed. The cache backend(s) should be
specified in the <a class="reference internal" href="../ref/settings.html#std:setting-CACHES"><tt class="xref std std-setting docutils literal"><span class="pre">CACHES</span></tt></a> setting.</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-4">
<span id="s-id6"></span><span id="deprecation-removed-in-1-4"></span><span id="id6"></span><h2>1.4<a class="headerlink" href="#deprecation-removed-in-1-4" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.2.html#deprecated-features-1-2"><em>Django 1.2 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">CsrfResponseMiddleware</span></tt> and <tt class="docutils literal"><span class="pre">CsrfMiddleware</span></tt> will be removed.  Use
the <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">csrf_token</span> <span class="pre">%}</span></tt> template tag inside forms to enable CSRF
protection. <tt class="docutils literal"><span class="pre">CsrfViewMiddleware</span></tt> remains and is enabled by default.</li>
<li>The old imports for CSRF functionality (<tt class="docutils literal"><span class="pre">django.contrib.csrf.*</span></tt>),
which moved to core in 1.2, will be removed.</li>
<li>The <tt class="docutils literal"><span class="pre">django.contrib.gis.db.backend</span></tt> module will be removed in favor
of the specific backends.</li>
<li><tt class="docutils literal"><span class="pre">SMTPConnection</span></tt> will be removed in favor of a generic Email backend API.</li>
<li>The many to many SQL generation functions on the database backends
will be removed.</li>
<li>The ability to use the <tt class="docutils literal"><span class="pre">DATABASE_*</span></tt> family of top-level settings to
define database connections will be removed.</li>
<li>The ability to use shorthand notation to specify a database backend
(i.e., <tt class="docutils literal"><span class="pre">sqlite3</span></tt> instead of <tt class="docutils literal"><span class="pre">django.db.backends.sqlite3</span></tt>) will be
removed.</li>
<li>The <tt class="docutils literal"><span class="pre">get_db_prep_save</span></tt>, <tt class="docutils literal"><span class="pre">get_db_prep_value</span></tt> and
<tt class="docutils literal"><span class="pre">get_db_prep_lookup</span></tt> methods will have to support multiple databases.</li>
<li>The <tt class="docutils literal"><span class="pre">Message</span></tt> model (in <tt class="docutils literal"><span class="pre">django.contrib.auth</span></tt>), its related
manager in the <tt class="docutils literal"><span class="pre">User</span></tt> model (<tt class="docutils literal"><span class="pre">user.message_set</span></tt>), and the
associated methods (<tt class="docutils literal"><span class="pre">user.message_set.create()</span></tt> and
<tt class="docutils literal"><span class="pre">user.get_and_delete_messages()</span></tt>), will be removed.  The
<a class="reference internal" href="../ref/contrib/messages.html"><em>messages framework</em></a> should be used
instead. The related <tt class="docutils literal"><span class="pre">messages</span></tt> variable returned by the
auth context processor will also be removed. Note that this
means that the admin application will depend on the messages
context processor.</li>
<li>Authentication backends will need to support the <tt class="docutils literal"><span class="pre">obj</span></tt> parameter for
permission checking. The <tt class="docutils literal"><span class="pre">supports_object_permissions</span></tt> attribute
will no longer be checked and can be removed from custom backends.</li>
<li>Authentication backends will need to support the <tt class="docutils literal"><span class="pre">AnonymousUser</span></tt> class
being passed to all methods dealing with permissions.  The
<tt class="docutils literal"><span class="pre">supports_anonymous_user</span></tt> variable will no longer be checked and can be
removed from custom backends.</li>
<li>The ability to specify a callable template loader rather than a
<tt class="docutils literal"><span class="pre">Loader</span></tt> class will be removed, as will the <tt class="docutils literal"><span class="pre">load_template_source</span></tt>
functions that are included with the built in template loaders for
backwards compatibility.</li>
<li><tt class="docutils literal"><span class="pre">django.utils.translation.get_date_formats()</span></tt> and
<tt class="docutils literal"><span class="pre">django.utils.translation.get_partial_date_formats()</span></tt>. These functions
will be removed; use the locale-aware
<tt class="docutils literal"><span class="pre">django.utils.formats.get_format()</span></tt> to get the appropriate formats.</li>
<li>In <tt class="docutils literal"><span class="pre">django.forms.fields</span></tt>, the constants: <tt class="docutils literal"><span class="pre">DEFAULT_DATE_INPUT_FORMATS</span></tt>,
<tt class="docutils literal"><span class="pre">DEFAULT_TIME_INPUT_FORMATS</span></tt> and
<tt class="docutils literal"><span class="pre">DEFAULT_DATETIME_INPUT_FORMATS</span></tt> will be removed. Use
<tt class="docutils literal"><span class="pre">django.utils.formats.get_format()</span></tt> to get the appropriate
formats.</li>
<li>The ability to use a function-based test runner will be removed,
along with the <tt class="docutils literal"><span class="pre">django.test.simple.run_tests()</span></tt> test runner.</li>
<li>The <tt class="docutils literal"><span class="pre">views.feed()</span></tt> view and <tt class="docutils literal"><span class="pre">feeds.Feed</span></tt> class in
<tt class="docutils literal"><span class="pre">django.contrib.syndication</span></tt> will be removed. The class-based view
<tt class="docutils literal"><span class="pre">views.Feed</span></tt> should be used instead.</li>
<li><tt class="docutils literal"><span class="pre">django.core.context_processors.auth</span></tt>.  This release will
remove the old method in favor of the new method in
<tt class="docutils literal"><span class="pre">django.contrib.auth.context_processors.auth</span></tt>.</li>
<li>The <tt class="docutils literal"><span class="pre">postgresql</span></tt> database backend will be removed, use the
<tt class="docutils literal"><span class="pre">postgresql_psycopg2</span></tt> backend instead.</li>
<li>The <tt class="docutils literal"><span class="pre">no</span></tt> language code will be removed and has been replaced by the
<tt class="docutils literal"><span class="pre">nb</span></tt> language code.</li>
<li>Authentication backends will need to define the boolean attribute
<tt class="docutils literal"><span class="pre">supports_inactive_user</span></tt> until version 1.5 when it will be assumed that
all backends will handle inactive users.</li>
<li><tt class="docutils literal"><span class="pre">django.db.models.fields.XMLField</span></tt> will be removed. This was
deprecated as part of the 1.3 release. An accelerated deprecation
schedule has been used because the field hasn&#8217;t performed any role
beyond that of a simple <tt class="docutils literal"><span class="pre">TextField</span></tt> since the removal of <tt class="docutils literal"><span class="pre">oldforms</span></tt>.
All uses of <tt class="docutils literal"><span class="pre">XMLField</span></tt> can be replaced with <tt class="docutils literal"><span class="pre">TextField</span></tt>.</li>
<li>The undocumented <tt class="docutils literal"><span class="pre">mixin</span></tt> parameter to the <tt class="docutils literal"><span class="pre">open()</span></tt> method of
<tt class="docutils literal"><span class="pre">django.core.files.storage.Storage</span></tt> (and subclasses) will be removed.</li>
</ul>
</div>
<div class="section" id="s-deprecation-removed-in-1-3">
<span id="s-id7"></span><span id="deprecation-removed-in-1-3"></span><span id="id7"></span><h2>1.3<a class="headerlink" href="#deprecation-removed-in-1-3" title="Permalink to this headline">¶</a></h2>
<p>See the <a class="reference internal" href="../releases/1.1.html#deprecated-features-1-1"><em>Django 1.1 release notes</em></a> for more
details on these changes.</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">AdminSite.root()</span></tt>.  This method of hooking up the admin URLs will be
removed in favor of including <tt class="docutils literal"><span class="pre">admin.site.urls</span></tt>.</li>
<li>Authentication backends need to define the boolean attributes
<tt class="docutils literal"><span class="pre">supports_object_permissions</span></tt> and <tt class="docutils literal"><span class="pre">supports_anonymous_user</span></tt> until
version 1.4, at which point it will be assumed that all backends will
support these options.</li>
</ul>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Django Deprecation Timeline</a><ul>
<li><a class="reference internal" href="#deprecation-removed-in-1-9">1.9</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-8">1.8</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-7">1.7</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-6">1.6</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-5">1.5</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-4">1.4</a></li>
<li><a class="reference internal" href="#deprecation-removed-in-1-3">1.3</a></li>
</ul>
</li>
</ul>

  <h3>Browse</h3>
  <ul>
    
      <li>Prev: <a href="release-process.html">Django&#8217;s release process</a></li>
    
    
      <li>Next: <a href="git.html">The Django source code repository</a></li>
    
  </ul>
  <h3>You are here:</h3>
  <ul>
      <li>
        <a href="../index.html">Django 1.7.8.dev20150401230226 documentation</a>
        
          <ul><li><a href="index.html">Django internals</a>
        
        <ul><li>Django Deprecation Timeline</li></ul>
        </li></ul>
      </li>
  </ul>

  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/internals/deprecation.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">Apr 02, 2015</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="release-process.html" title="Django&amp;#8217;s release process">previous</a>
     |
    <a href="index.html" title="Django internals" accesskey="U">up</a>
   |
    <a href="git.html" title="The Django source code repository">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>